libsysprof_ui_public_sources = [
  'sysprof-check.c',
  'sysprof-display.c',
  'sysprof-model-filter.c',
  'sysprof-notebook.c',
  'sysprof-page.c',
  'sysprof-process-model-row.c',
  'sysprof-visualizer.c',
  'sysprof-visualizer-group.c',
  'sysprof-zoom-manager.c',
]

libsysprof_ui_private_sources = [
  'egg-handle.c',
  'egg-paned.c',
  'egg-resizer.c',

  'pointcache.c',
  'rectangles.c',
  'sysprof-aid.c',
  'sysprof-aid-icon.c',
  'sysprof-battery-aid.c',
  'sysprof-cairo.c',
  'sysprof-callgraph-aid.c',
  'sysprof-callgraph-page.c',
  'sysprof-cell-renderer-duration.c',
  'sysprof-cell-renderer-percent.c',
  'sysprof-cell-renderer-progress.c',
  'sysprof-color-cycle.c',
  'sysprof-counters-aid.c',
  'sysprof-cpu-aid.c',
  'sysprof-depth-visualizer.c',
  'sysprof-details-page.c',
  'sysprof-diskstat-aid.c',
  'sysprof-display.c',
  'sysprof-duplex-visualizer.c',
  'sysprof-environ.c',
  'sysprof-environ-editor.c',
  'sysprof-environ-editor-row.c',
  'sysprof-environ-variable.c',
  'sysprof-failed-state-view.c',
  'sysprof-line-visualizer.c',
  'sysprof-log-model.c',
  'sysprof-logs-aid.c',
  'sysprof-logs-page.c',
  'sysprof-mark-detail.c',
  'sysprof-marks-aid.c',
  'sysprof-marks-model.c',
  'sysprof-marks-page.c',
  'sysprof-mark-visualizer.c',
  'sysprof-memory-aid.c',
  'sysprof-memprof-aid.c',
  'sysprof-memprof-page.c',
  'sysprof-memprof-visualizer.c',
  'sysprof-netdev-aid.c',
  'sysprof-procs-visualizer.c',
  'sysprof-profiler-assistant.c',
  'sysprof-proxy-aid.c',
  'sysprof-rapl-aid.c',
  'sysprof-recording-state-view.c',
  'sysprof-scrollmap.c',
  'sysprof-tab.c',
  'sysprof-theme-manager.c',
  'sysprof-time-label.c',
  'sysprof-time-visualizer.c',
  'sysprof-visualizer-group-header.c',
  'sysprof-visualizers-frame.c',
  'sysprof-visualizer-ticks.c',
  '../stackstash.c',
]

libsysprof_ui_public_headers = [
  'sysprof-check.h',
  'sysprof-display.h',
  'sysprof-model-filter.h',
  'sysprof-notebook.h',
  'sysprof-page.h',
  'sysprof-process-model-row.h',
  'sysprof-visualizer.h',
  'sysprof-visualizer-group.h',
  'sysprof-zoom-manager.h',
  'sysprof-ui.h',
]

libsysprof_ui_resources = gnome.compile_resources(
  'libsysprof-ui-resources',
  'libsysprof-ui.gresource.xml',
  c_name: 'lisysprof_ui',
)

# Subset of dependencies used in generating the pkg-config file
libsysprof_ui_pkg_deps = [
  dependency('gio-2.0', version: glib_req_version),
  dependency('gtk4', version: gtk_req_version),
  dependency('libadwaita-1'),
]

libsysprof_ui_deps = libsysprof_ui_pkg_deps + [
  libsysprof_dep,
]

# Meson's pkgconfig module wants to see a library here, not an internal
# dependency object
libsysprof_ui_pkg_deps += libsysprof

libsysprof_ui = shared_library(
  'sysprof-ui-@0@'.format(libsysprof_ui_api_version),
  libsysprof_ui_public_sources + libsysprof_ui_private_sources + libsysprof_ui_resources,

           dependencies: libsysprof_ui_deps + [librax_dep],
            install_dir: get_option('libdir'),
                install: true,
                 c_args: [ '-DSYSPROF_UI_COMPILATION' ],
  gnu_symbol_visibility: 'hidden',
)

libsysprof_ui_dep = declare_dependency(
               link_with: libsysprof_ui,
            dependencies: libsysprof_ui_deps,
     include_directories: include_directories('.'),
)
meson.override_dependency('sysprof-ui-@0@'.format(libsysprof_api_version), libsysprof_ui_dep)

pkgconfig.generate(
               libsysprof_ui,
      subdirs: [ sysprof_ui_header_subdir ],
  description: 'The UI library for GTK applications embedding sysprof',
  install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
     requires: [ 'gio-2.0', 'gtk4' ],
     libraries_private: libsysprof_ui_pkg_deps,
     variables: [
       'datadir=' + datadir_for_pc_file,
     ],
)

install_headers(libsysprof_ui_public_headers, subdir: sysprof_ui_header_subdir)
